<?php
function subirfoto($foto,$idparte,$numFotosAsociadas){
	$nombre=null;
	if ($foto['error'] == UPLOAD_ERR_OK){
		$nuevaRuta = "../../img/".basename($foto['name']);
		if (move_uploaded_file($foto['tmp_name'],$nuevaRuta)) {
			return $nuevaRuta;
		}else
		throw new Exception( "No se puede guardar la imagen en la ruta"."../../img/".basename($nombre) );

	}else
	throw new Exception( "Error al enviar la imagen UPLOAD_ERR_OK\n" );
}

function cambiarNombreFoto($foto,$idparte,$numFotosAsociadas){
	return $idparte."_".$numFotosAsociadas.strrchr($foto,".");
}



function redimensionar_imagen($imagen, $nombre_imagen_asociada){

	//indicamos el directorio donde se van a colgar las imágenes

	$directorio = "../../img/" ;

	//establecemos los límites de ancho y alto

	$nuevo_ancho = 600 ;

	$nuevo_alto = $nuevo_ancho*3/4 ;

	 

	//Recojo información de la imágen

	$info_imagen = getimagesize($imagen);

	$alto = $info_imagen[1];

	$ancho = $info_imagen[0];

	$tipo_imagen = $info_imagen[2];

	 

	//Determino las nuevas medidas en función de los límites

	if($ancho > $nuevo_ancho OR $alto > $nuevo_alto)

	{

		if(($alto - $nuevo_alto) > ($ancho - $nuevo_ancho))

		{

			$nuevo_ancho = round($ancho * $nuevo_alto / $alto,0) ;

		}

		else

		{

			$nuevo_alto = round($alto * $nuevo_ancho / $ancho,0);

		}

	}

	else //si la imagen es más pequeña que los límites la dejo igual.

	{

		$nuevo_alto = $alto;

		$nuevo_ancho = $ancho;

	}



	// dependiendo del tipo de imagen tengo que usar diferentes funciones

	switch ($tipo_imagen) {

		case 1: //si es gif …
			$imagen_nueva = imagecreate($nuevo_ancho, $nuevo_alto);

			$imagen_vieja = imagecreatefromgif($imagen);

			//cambio de tamaño…

			imagecopyresampled($imagen_nueva, $imagen_vieja, 0, 0, 0, 0, $nuevo_ancho, $nuevo_alto, $ancho, $alto);

			if (!imagegif($imagen_nueva, $directorio . $nombre_imagen_asociada)) return false;

			break;

			 

		case 2: //si es jpeg …

			$imagen_nueva = imagecreatetruecolor($nuevo_ancho, $nuevo_alto);

			$imagen_vieja = imagecreatefromjpeg($imagen);

			//cambio de tamaño…

			imagecopyresampled($imagen_nueva, $imagen_vieja, 0, 0, 0, 0, $nuevo_ancho, $nuevo_alto, $ancho, $alto);

			if (!imagejpeg($imagen_nueva, $directorio . $nombre_imagen_asociada)) return false;

			break;

			 

		case 3: //si es png …

			$imagen_nueva = imagecreatetruecolor($nuevo_ancho, $nuevo_alto);

			$imagen_vieja = imagecreatefrompng($imagen);

			//cambio de tamaño…

			imagecopyresampled($imagen_nueva, $imagen_vieja, 0, 0, 0, 0, $nuevo_ancho, $nuevo_alto, $ancho, $alto);

			if (!imagepng($imagen_nueva, $directorio . $nombre_imagen_asociada)) return false;

			break;

	}

	return true; //si todo ha ido bien devuelve true

}


?>